﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
using QuanLyKhachSan.BusinessLogic;
using QuanLyKhachSan.BusinessObject;
using QuanLyKhachSan.DataAccess;
namespace QuanLyKhachSan
{
    public partial class frmAddNhanVien : Form
    {
        private NhanVienBL nvBL = new NhanVienBL();
        private ChucVuBL cvBL = new ChucVuBL();
        private NhomNguoiDungBL nndBL = new NhomNguoiDungBL();
        private ConnectData connData = new ConnectData();
        String picLoc = null;
        FileStream fstream;
        BinaryReader br;
        public frmAddNhanVien()
        {
            InitializeComponent();
        }

        private void frmAddNhanVien_Load(object sender, EventArgs e)
        {
            //lấy mã chức vụ laod vào combobox
            cboMaChucVu.DataSource = cvBL.LayChucVu();
            cboMaChucVu.DisplayMember = "TenChucVu";
            cboMaChucVu.ValueMember = "MaChucVu";

            //lấy giới tính load vào combobox
            cboGioiTinh.DataSource = nvBL.LayDSGioiTinh();
            cboGioiTinh.DisplayMember = "NameGT";
            cboGioiTinh.ValueMember = "GioiTinh";

            //lấy mã nhóm load vào combobox
            cboMaNhom.DataSource = nndBL.LayNhomNguoiDung();
            cboMaNhom.DisplayMember = "TenNhom";
            cboMaNhom.ValueMember = "MaNhom";
        }

        public void ResetTextValue()
        {
            txtMaNhanVien.Text = "";
            txtTenNhanVien.Text = "";
            dtPickerNgaySinh.Text = "";
            cboGioiTinh.Text = "";
            txtDiaChi.Text = "";
            txtSoDienThoai.Text = "";
            cboMaChucVu.Text = "";
            txtUserName.Text = "";
            txtPassWord.Text = "";
            cboMaNhom.Text = "";
        }

        private NhanVienBO LayTTNV()
        {
            NhanVienBO nv = new NhanVienBO();
            nv.MaNhanVien = txtMaNhanVien.Text;
            nv.TenNhanVien = txtTenNhanVien.Text;
            nv.UserName = txtUserName.Text;
            nv.PassWord = txtPassWord.Text;
            nv.NgaySinh = Convert.ToDateTime(dtPickerNgaySinh.Value.ToShortDateString());
            nv.GioiTinh = (cboGioiTinh.SelectedValue.ToString() == "True") ? 1 : 0;
            nv.DiaChi = txtDiaChi.Text;
            nv.SoDienThoai = txtSoDienThoai.Text;
            nv.MaChucVu = cboMaChucVu.SelectedValue.ToString();
            nv.MaNhom = cboMaNhom.SelectedValue.ToString();
            nv.Anh = br.ReadBytes((int)fstream.Length);
            return nv;
        }

        public delegate void DuLieuTruyenVe(NhanVienBO NV);
        public DuLieuTruyenVe DuLieu;

        private void btnLuu_Click(object sender, EventArgs e)
        {
            NhanVienBO nv = LayTTNV();
            
            if (nvBL.CheckExists(nv.MaNhanVien))
            {
                //neu ton tai thi sua
                if (nv.TenNhanVien.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập tên nhân viên");
                    txtTenNhanVien.Focus();
                    return;
                }
                if (nv.NgaySinh.Year < 1985)
                {
                    MessageBox.Show("Năm sinh không hợp lệ");
                    dtPickerNgaySinh.Focus();
                    return;
                }
                if (nv.DiaChi.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập địa chỉ");
                    txtDiaChi.Focus();
                    return;
                }
                if (nv.SoDienThoai.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập số điện thoại");
                    txtSoDienThoai.Focus();
                    return;
                }
                if (nv.SoDienThoai.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập số điện thoại");
                    txtSoDienThoai.Focus();
                    return;
                }
                nvBL.SuaNV(nv);
                MessageBox.Show("Sửa nhân viên thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            else
            {//them
                if (nv.TenNhanVien.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập tên nhân viên");
                    txtTenNhanVien.Focus();
                    return;
                }
                if (nv.NgaySinh.Year < 1985)
                {
                    MessageBox.Show("Năm sinh không hợp lệ");
                    dtPickerNgaySinh.Focus();
                    return;
                }
                if (nv.DiaChi.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập địa chỉ");
                    txtDiaChi.Focus();
                    return;
                }
                if (nv.SoDienThoai.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập số điện thoại");
                    txtSoDienThoai.Focus();
                    return;
                }
                if (nv.SoDienThoai.Equals(""))
                {
                    MessageBox.Show("Bạn phải nhập số điện thoại");
                    txtSoDienThoai.Focus();
                    return;
                }
                nvBL.ThemNV(nv);
                MessageBox.Show("Thêm nhân viên thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            if (DuLieu != null)
            {
                DuLieu(nv);
            }
        }

        public void NextID()
        {
            txtMaNhanVien.Text = nvBL.NextID();
        }


        public void Load_Edit(NhanVienBO nhanvien) {
            txtMaNhanVien.Text = nhanvien.MaNhanVien.ToString();
            txtTenNhanVien.Text = nhanvien.TenNhanVien.ToString();
            dtPickerNgaySinh.Text = nhanvien.NgaySinh.ToString();
            txtDiaChi.Text = nhanvien.DiaChi.ToString();
            txtSoDienThoai.Text = nhanvien.SoDienThoai.ToString();
            //txtUserName.Text = nhanvien.UserName.ToString();
            //txtPassWord.Text = nhanvien.PassWord.ToString();

            //try
            //{
            //  //  SinhVien_ThongTin SV = new SinhVien_ThongTin();
            // //   SV.MaSinhVien = txtMaSinhVien_TTSV.Text;
            //    SqlDataReader Anh = nvBL.LayAnhSinhVien(nhanvien);
            //    Anh.Read();
            //    if (Anh.HasRows)
            //    {
            //        nhanvien.Anh = (byte[])(Anh[0]);
            //        if (nhanvien.Anh == null)
            //        {
            //            pictureBox2.Image = null;
            //        }
            //        else
            //        {
            //            MemoryStream ms = new MemoryStream(nhanvien.Anh);
            //            pictureBox2.Image = Image.FromStream(ms);
            //            Anh.Close();
            //        }
            //    }
            //}
            //catch
            //{
            //    MessageBox.Show("Sinh viên chưa có thông tin ảnh!", "Cảnh báo.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            //}
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void btnKhongLuu_Click(object sender, EventArgs e)
        {
            ResetTextValue();
        }

        private void pictureBox2_Click(object sender, EventArgs e)
        {
           
        }

        private void btnChonAnh_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "PNG Files(*.png)|*.png|JPG Files(*jpg)|*.jpg|All Files(*.*)|*.*";
            dlg.Title = "Chọn ảnh cho sinh viên.";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                picLoc = dlg.FileName.ToString();
                pictureBox2.ImageLocation = picLoc;
                fstream = new FileStream(picLoc, FileMode.Open, FileAccess.Read);
                br = new BinaryReader(fstream);
            }
        }
    }
}
